Computers, in performing many tasks previously accomplished by humans, are required to optically recognize objects or codes. Machine vision systems, therefore, are coupled to computers for performing recognition functions. Optical character recognition (OCR) software, for example, is used to drive a scanner for scanning a page of text. Characters recognized on the scanned page are electronically transferred to the computer.times.s memory, thereby relieving a data input operator from manually inputting the document contents. Another common function for machine vision systems is scanning items having bar codes impressed thereon. The bar code is more easily recognized than alpha-numeric characters and may therefore be useable in harsher environments. Bar codes, for example, are optically read from packages for inputting price and product description information into a computer.
More sophisticated systems merge a robot with a machine vision system, for example, a camera located on a robotic arm, the camera and robotic arm being controlled by a processing unit. The machine vision system can be taught to recognize certain objects so that the robot can grip and manipulate the identified objects. In automated data storage libraries, a robotic arm is directed to a slot storing a cartridge containing a data storage medium, i.e., a magnetic tape or optical disk. A camera located on the robotic arm, attempts to read alpha-numeric characters or bar code impressed on a label attached to the cartridge to identify the cartridge or verify the cartridge being picked by the robotic arm is the expected cartridge.
In the above described machine vision systems, the characters or bar code must first be located. Once located, the characters or bar code must be read. For a machine vision system to operate efficiently, it must locate the characters or bar code quickly and read the characters or bar code accurately. Locating characters or objects, for example, typically requires searching a large image or area, i.e., a page, a package, a label, or everything within a camera's field of vision. The time required to locate the characters or objects is related to the image size or area to be searched. Once the characters are located, a smaller search window is viewed in an attempt to identify individual characters. An erroneous character reading may occur when a character is not fully within a search window, or when more than one character appears in the search window.
A method for improving OCR efficiency is taught by Tanaka, et al., in U.S. Pat. No. 4,926,492. This invention searches an image, i.e., a page, and divides the image into character lines. Picture elements are then counted in several different directions for determining character positions. In Tanaka, et al., a large image must still be searched, and each individual character location must be determined within a window though the character line information is used to reduce the window size somewhat. Peppers, et al., in U.S. Pat. No. 4,809,344, describe segmenting a page by simultaneously identifying multiple features including separation between lines and separation between characters. A page having both vertical and horizontal text would be segmented so that each segment could be handled more efficiently. Like Tanaka, et al., this implementation still requires searching a large image for recognizable characters.
A method for locating bar codes, even on an image having background noise, is described by Raphael in U.S. Pat. No. 4,916,298. The bar codes are detected by comparing areas of the image to a predetermined threshold (indicating light reflection or absorption). Once a suspected bar code is located, a smaller image area or window surrounding the bar code is viewed in an attempt to read the bar code. Raphael provides a faster method for finding bar codes but still teaches first scanning an entire image and then windows within that image. Guthmueller, et al., in U.S. Pat. No. 4,822,986 takes advantage of the knowledge that postal zip codes printed on envelopes as bar codes will be printed near the envelope bottom. Guthmueller, et al., only searches the bottom portion of the envelope when locating the bar codes. Efficiency is improved by reducing the image area being searched. Finding the bar codes is then accomplished by recognizing the bar code image.
Another method of reducing the time required to locate regions of an image containing bar codes is set forth by Lee, et al., in U.S. Pat. No. 4,948,955. This method first reduces the background image, then rejects background noise while attempting to locate a bar code. Once the bar code is found, the four corner points defining the bar code's boundary are determined. Like the other prior art, this invention requires searching a relatively large image area while trying to identify characters or bar code, sometimes in the presence of background noise.
Machine identifiable characters or bar codes are often printed on a page or label at predetermined locations. Substantial processing time may be saved by quickly identifying easily recognizable objects for establishing reference points, and then determining where the identifying characters or bar codes are located. The need for scanning an image for recognizable characters in the presence of noise would no longer be required.
Thus what is needed is a machine vision system for quickly finding easily recognizable objects for establishing reference points from which actual character or bar code locations may be predicted.